home *** CD-ROM | disk | FTP | other *** search
/ CBM Funet Archive / cbm-funet-archive-2003.iso / cbm / geos / programming / SpringBoard.lnx / SB documentation (.txt) < prev    next >
Encoding:
GEOS ConVerT  |  1999-06-16  |  5.9 KB  |  60 lines

  1. sb DOCUMENTATION
  2. prg FORMATTED geos FILE v1.0
  3. wRITE iMAGE v2.0
  4. GEOwRITE    v1.1
  5.          
  6. sPRINGBOARD aSSEMBLER v1.9 dOCUMENTATION
  7.                    BY jIM hOLLOWAY
  8. pLEASE SEND $5.00 TO THE AUTHOR AT:
  9. @eIGENMANN hALL 1456
  10. bLOOMINGTON, in 47406
  11. TO HELP SUPPORT THIS AND FUTURE PROJECTS.
  12. operation:
  13. tHE sPRINGBOARD aSSEMBLER TAKES GEOwRITE FILES (ANY VERSION), AND USES THEM AS 6502 ASSEMBLY SOURCE FILES.  iT CAN ASSEMBLE UP TO SIXTEEN FILES INTO A SIXTEEN-MODULE geos APPLICATION.  tHERE IS NO NEED FOR A LINKER.  tHE ASSEMBLER CONVERTS THE SOURCE FILES DIRECTLY INTO geos APPLICATION FORMAT.
  14. tHE ASSEMBLER CAN ALSO PRODUCE A PRINTER LISTING OF THE OBJECT CODE, ALONG WITH ANY ERRORS, SYMBOL TABLE, AND ERROR COUNT.
  15. tWO DISK DRIVES CAN BE USED AS FOLLOWS:  iF THE ASSEMBLER IS OPENED ON dRIVE a, THEN ALL SOURCE FILES MUST ALSO BE ON dRIVE a, AS WILL THE OBJECT FILE (APPLICATION).  iF THE ASSEMBLER IS OPENED ON dRIVE b, THEN THE SOURCE FILES MUST STILL BE ON dRIVE a, BUT THE OBJECT FILE (APPLICATION) WILL BE ASSEMBLED ONTO dRIVE b.  tHIS WORKS WELL WITH A ram DISK, IF YOU HAVE A reu.
  16. tHE sPRINGBOARD IS A TWO-PASS ASSEMBLER.  oN THE FIRST PASS, IT WILL CONSTRUCT A SYMBOL TABLE.  iF ANY ERRORS ARE ENCOUNTERED DURING PASS ONE, THE ASSEMBLER WILL NOT CONTINUE TO PASS TWO, AND NO OBJECT FILE WILL BE PRODUCED (FOR SAFETY'S SAKE).
  17. symbols:
  18. sYMBOLS, OR "LABELS", 
  19. @MUST START ON THE FIRST CHARACTER OF A LINE
  20. .  nO TABS, SPACES, OR ANY OTHER CHARACTER MAY BE PLACED BEFORE A LABEL.  a LABEL CAN CONTAIN UP TO SIX ascii CHARACTERS.
  21. tHE ASSEMBLER ALLOWS SOME FORWARD REFERENCING OF YET-UNDEFINED LABELS.  aNY INSTRUCTION THAT IS A CONSTANT NUMBER OF BYTES (E.G.: jmp, beq, ETC.) CAN USE FORWARD REFERENCING.
  22. hOWEVER, INSTRUCTIONS THAT CAN BE TWO OR THREE BYTES LONG DEPENDING ON THE SIZE OF THEIR OPERAND (ZERO-PAGE VS. ABSOLUTE), LIKE lda, sta, inc, ETC., CANNOT USE FORWARD-REFERENCED LABELS.  tHEIR OPERANDS MUST HAVE ALREADY BEEN DEFINED IN THE FILE.
  23. mnemonics:
  24. tHE sPRINGBOARD aSSEMBLER SUPPORTS ALL STANDARD 6502 MNEMONICS AND ADDRESSING MODES.  aCCUMULATOR ADDRESSING IS PERFORMED WITH AN AT-SIGN (@) AND NOT AN "a", HOWEVER.  fOR EXAMPLE: ror @, lsr @.  tHIS IS SO "a" OR "A" CAN BE USED AS A LABEL.  
  25. @mNEMONICS MUST BE PRECEDED BY A SPACE OR TAB.
  26. directives:
  27. tHERE ARE FIVE ASSEMBLY DIRECTIVES THAT ARE RECOGNIZED BY THE ASSEMBLER: adr, mem, equ, byt, AND wrd.  
  28. @dIRECTIVES MUST BE PRECEDED BY A SPACE OR TAB.
  29. adr CHANGES THE BEGINNING ASSEMBLY ADDRESS OF A FILE (MODULE).  iT MUST BE THE FIRST INSTRUCTION OF A FILE (BESIDES COMMENTS OR equATES).  tHIS DIRECTIVE SHOULD BE USED ONLY WHEN ASSEMBLING A MULTI-MODULE APPLICATION - AT THE BEGINNING OF EACH MODULE.  tHE ADDRESS SHOULD BE SET TO WHEREVER THE MODULE WILL LOAD INTO MEMORY.  tHE FIRST MODULE WILL ALWAYS DEFAULT TO $400 (STANDARD FOR APPLICATIONS).  adr IS FOR THE ASSEMBLER'S USE AND DOES NOT BECOME PART OF THE OBJECT FILE.  [adr MOD1, adr $3000]
  30. equ 
  31.  BE PRECEDED BY A LABEL.  iT WILL THEN SET THIS LABEL EQUAL TO THE VALUE OF ITS OPERAND.  aGAIN, NO MEMORY IS USED BY THIS DIRECTIVE.  [SEVEN equ 7, a equ $40+1]
  32. mem IS USED TO SET ASIDE A SPECIFIC NUMBER OF BYTES FOR LATER USE BY THE APPLICATION.  tHESE BYTES WILL INITIALLY CONTAIN 0'S.  [mem 256, mem BLOCK+1000]
  33. byt IS USED TO STORE BYTE DATA.  tHE DATA MUST BE SEPARATED BY COMMAS, AND CANNOT CONTAIN SPACES OR TABS.  [byt 0,1,2,3,4,5,255 ,   byt h,E,L,L,O,32,T,H,E,R,E,0]
  34. wrd IS USED TO STORE WORD DATA.  aS WITH THE byt DIRECTIVE, THE DATA MUST BE SAPERATED BY COMMAS, AND CANNOT CONTAIN SPACES OR TABS.  [wrd LEFT,RIGHT ,  wrd $4800,20,700]
  35. comments:
  36. a COMMENT MAY BE PLACED AFTER THE LAST OPERAND (IF ANY) ON A LINE.  iT MUST BE SEPARATED FROM THE LAST OPERAND BY A SPACE OR TAB.  [START ldx #50 
  37. @START COUNTER
  38. ,  dex    
  39. @COUNTER-1
  40. aN ENTIRE LINE MAY BE DECLARED AS A COMMENT BY BEGINNING THE LINE WITH AN ASTERISK (*).  [* mAIN ROUTINE STARTS HERE.]
  41. offsets:
  42. aN OFFSET MAY BE ADDED TO ANY OPERAND (EXCEPT @ IN ACCUMULATOR ADDRESSING).  tHIS IS USEFUL SETTING ADDRESS POINTERS.  fOR EXAMPLE:  lda POINT,  sta R0L,   
  43. @lda POINT+1
  44. ,  sta R0H.
  45. number types:
  46. tHE ASSEMBLER ACCEPTS DECIMAL (1, 0, 792, 65535), BINARY (%01001, %1011, %11110000, %10101001001011), AND HEXADECIMAL ($45, $A, $7cae) NUMBERS AS OPERANDS.
  47. ascii strings:
  48. tHE ASSEMBLER DOES NOT DIRECTLY SUPPORT ascii STRINGS OR CHARACTERS.  hOWEVER, A ONE-CHARACTER LABEL MAY BE DEFINED WITH AN equ DIRECTIVE THAT EQUATES THE CHARACTER WITH ITS ascii VALUE.  [A equ $61,  B equ A+1,  ETC.]
  49. tHEN THE byt DIRECTIVE CAN BE USED TO CONSTRUCT STRING OF THESE VALUES.  [ byt h,E,L,L,O,32,T,H,E,R,E,!,0]
  50. address pointers:
  51. aGAIN, THE ASSEMBLER DOES NOT PROVIDE ACCESS TO THE LOW AND HIGH BYTES OF AN ADDRESS DIRECTLY, BUT THERE IS STILL A SIMPLE WAY TO DO IT.  jUST DEFINE A "POINTER WORD" THAT POINTS TO THE DESIRED ADDRESS AND ACCESS THE LOW AND HIGH BYTES FROM THE POINTER WORD.  fOR EXAMPLE:
  52. BLOCK mem 256
  53. BPOINT wrd BLOCK
  54.   lda BPOINT
  55.   sta A0L
  56.   lda BPOINT+1
  57.   sta A0H (THIS MOVES THE ADDRESS OF "BLOCK" INTO A0L/H).
  58. example file:
  59. sEE "SPRINGBOARD.EX" FOR AN EXAMPLE SOURCE FILE.
  60.